void
_babl_fish_rig_dispatch (Babl *babl)
{
+ babl->fish.data = (void*)&(babl->fish.data);
+
+ if (babl->fish.source == babl->fish.destination)
+ {
+ babl->fish.dispatch = babl_fish_memcpy_process;
+ return;
+ }
+
switch (babl->class_type)
{
case BABL_FISH_REFERENCE:
- if (babl->fish.source == babl->fish.destination)
- {
- babl->fish.dispatch = babl_fish_memcpy_process;
- babl->fish.data = (void*)&(babl->fish.data);
- }
- else
- {
- babl->fish.dispatch = babl_fish_reference_process;
- babl->fish.data = (void*)&(babl->fish.data);
- }
+ babl->fish.dispatch = babl_fish_reference_process;
break;
case BABL_FISH_SIMPLE:
/* do same short-circuit optimization as for simple fishes */
babl->fish.dispatch = conversion->dispatch;
- babl->fish.data = &conversion->data;
}
else
{
babl->fish.dispatch = babl_fish_path_process;
- babl->fish.data = (void*)&(babl->fish.data);
}
break;